TOP

Instrukcja SQL UNION

SQL UNION Opis

Operator UNION służy do łączenia zestawu wyników dwóch lub więcej instrukcji SELECT.

  • Każda instrukcja SELECT w UNION musi mieć tę samą liczbę kolumn
  • Kolumny muszą również mieć podobne typy danych
  • Kolumny w każdej instrukcji SELECT również muszą być w tej samej kolejności

  • UNION Składnia

    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2
    

    UNION ALL Składnia

    Operator UNION domyślnie wybiera tylko odrębne wartości. Aby zezwolić na powielanie wartości, użyj UNION ALL:

    SELECT column_name(s) FROM table1
    UNION ALL
    SELECT column_name(s) FROM table2
    
    Nazwy kolumn w zestawie wyników zwykle odpowiadają nazwom kolumn w pierwszej instrukcji SELECT.

    Baza demonstracyjna

    W tym samouczku użyjemy słynnej przykładowej bazy danych „Northwind”.

    Poniżej znajduje się przykład z tabeli „Customers” („Klienci”):

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    Oraz próbka z tabeli „Suppliers” („Dostawcy”):

    SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
    1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
    2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
    3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
    4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
    5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

    SQL UNION Przykład

    Poniższa instrukcja SQL wybiera miasta (tylko różne wartości) z tabel Klienci i Dostawcy:

    Run SQLSELECT City FROM Customers 
    UNION 
    SELECT City FROM Suppliers 
    ORDER BY City
    
    Jeśli niektórzy klienci lub dostawcy mają to samo miasto (City), każde miasto zostanie określone tylko raz, ponieważ UNION wybiera tylko różne wartości. Użyj UNION ALL, aby wybrać także zduplikowane wartości!

    SQL UNION ALL Przykład

    Następująca instrukcja SQL wybiera miasta (również zduplikowane wartości) z obu tabel Klienci i Dostawcy:

    Run SQLSELECT City FROM Customers 
    UNION ALL 
    SELECT City FROM Suppliers 
    ORDER BY City
    

    SQL UNION razem z WHERE

    Poniższa instrukcja SQL wybiera niemieckie miasta (tylko inne wartości) zarówno z tabeli Klienci, jak i Dostawcy:

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    SQL UNION ALL razem z WHERE

    Poniższa instrukcja SQL wybiera niemieckie miasta (również zduplikowane wartości) z obu tabel Klienci i Dostawcy:

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION ALL 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    Kolejny przykład SQL UNION

    Poniższa instrukcja SQL zawiera listę wszystkich klientów i dostawców:

    Run SQLSELECT 'Customer' AS Type, ContactName, City, Country 
    FROM Customers 
    UNION 
    SELECT 'Supplier', ContactName, City, Country 
    FROM Suppliers
    

    Zauważ, że „AS Type” powyżej jest aliasem. Aliasy SQL służą do nadawania tabeli lub kolumnie tymczasowej nazwy. Alias istnieje tylko przez czas trwania żądania. Dlatego tutaj utworzyliśmy tymczasową kolumnę o nazwie „Type”, która wskazuje, czy kontakt jest „Klientem”, czy „Dostawcą”.